#ifndef __ActionMoveCamera_h_
#define __ActionMoveCamera_h_
#include <iostream>
#include <Ogre.h>
#include <OIS/OIS.h>

class ActionMoveCamera
{
	public:
		ActionMoveCamera(Ogre::Camera *mCam);
		~ActionMoveCamera();

		void mouseMoved(const OIS::MouseEvent &arg);
		void updateGraphics(const Ogre::FrameEvent &evt);
		void keyPressed(const OIS::KeyEvent &evt);
		void keyReleased(const OIS::KeyEvent &evt);

	private:

		void moveFw();
		void moveBk();
		void moveLeft();
		void moveRight();
		void moveDown();
		void moveUp();
		void stopFw();
		void stopBk();
		void stopLeft();
		void stopRight();
		void stopDown();
		void stopUp();
		
		Ogre::Camera *mCamera;
		Ogre::SceneNode *mCamNode;

		Ogre::SceneManager *mSceneMgr;   // The current SceneManager
		Ogre::Vector3 mDirection;     // Value to move in the correct direction
		Ogre::Real mMove;            // The movement constant
		Ogre::Real mRotate;          // The rotate constant
};
#endif 